<template>
    <div class="header">
        <div class="nav-topbar">
            <div class="container">
                <div class="topbar-menu">
                    <a href="javascript:;">小米商城</a>
                    <a href="javascript:;">MIUI</a>
                    <a href="javascript:;">云服务</a>
                    <a href="javascript:;">协议规则</a>
                </div>
                <div class="topbar-user">
                    <a href="javascript:;" v-if="username">{{username}}</a>
                    <a href="javascript:;" v-if="username" @click="logout">退出</a>
                    <a href="javascript:;" v-if="username" @click="orderList">订单列表</a>
                    <a href="javascript:;" v-if="!username" @click="login">登录</a>
                    <a href="javascript:;" v-if="!username" @click="login">注册</a>
                    <a href="javascript:;" class="my-cart" @click="goToCart"><span class="icon-cart"></span>购物车({{cartCount}})</a>
                </div>
            </div>
        </div>
        <div class="nav-header">
            <div class="container">
                <div class="header-logo">
                    <a href=""></a>
                </div>
                <div class="header-menu">

                    <div v-for="(item, index) in navList.slice(0,8)" :key="index" class="item-menu ">
                        <span>{{item.cat_name}}</span>
                        <div class="children" v-if="index < 7">
                            <ul>
                                <li class="product" v-for="(g, key) in item.goods" :key="key">
                                    <a :href="'/#/product/' + g.sku_id" target="_blank">
                                        <div class="pro-img">
                                            <img v-lazy="g.image" :alt="g.title">
                                        </div>
                                        <div class="pro-name">{{g.title}}</div>
                                        <div class="pro-price">￥{{g.price}}元起</div>
                                    </a>
                                </li>

                            </ul>
                        </div>
                    </div>
                    <div class="item-menu ">
                        <a href="/#/movies">影院</a>
                    </div>
                </div>
                <div class="header-search">
                    <div class="wrapper">
                        <input type="text" name="keyword">
                        <a href="javascript:;"></a>
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>
<script>
    import {mapState} from 'vuex'
    import storage from '../storage/index'
    export default{
        name:'nav-header',
        data() {
            return {
                navList: [],
            }
        },
        computed: {
            ...mapState(['username','cartCount'])
        },
        mounted() {
            this.getProductList()
        },
        methods: {
            getProductList() {
                this.http.get('/api/menus').then((res)=> {
                    this.navList = res.result
                })
            },
            goToCart() {
                this.$router.push('/cart')
            },
            login() {
                this.$router.push('/login')
            },
            logout(){
                this.http.get('/api/logout').then(()=>{
                    this.message.success('退出成功');
                    storage.clear('token')
                    this.$store.dispatch('saveUserName','');
                    this.$store.dispatch('saveCartCount','0');
                })
            },
            orderList() {
                this.$router.push('/orderlist')
            }
        }
    }
</script>

<style lang="scss" scoped>
    @import './../assets/scss/base.scss';
    @import './../assets/scss/mixin.scss';

    .header{
        .nav-topbar{
            height:39px;
            line-height:39px;
            background-color:#333333;
            color:#B0B0B0;
            .container{
                @include flex();
                a{
                    display:inline-block;
                    color:#B0B0B0;
                    margin-right:17px;
                }
                .my-cart{
                    width:110px;
                    background-color:#FF6600;
                    text-align:center;
                    color:#ffffff;
                    margin-right: 0;
                    .icon-cart{
                        @include bgImg(16px,12px,'/imgs/icon-cart-checked.png');
                        margin-right:4px;
                    }
                }
            }
        }
        .nav-header{
            .container{
                position:relative;
                height:112px;
                @include flex();
                .header-logo{
                    display:inline-block;
                    width:55px;
                    height:55px;
                    background-color:#FF6600;
                    a{
                        display:inline-block;
                        width:110px;
                        height:55px;
                        &:before{
                            content:' ';
                            @include bgImg(55px,55px,'/imgs/mi-logo.png',55px);
                            transition:margin .2s;
                        }
                        &:after{
                            content:' ';
                            @include bgImg(55px,55px,'/imgs/mi-home.png',55px);
                        }
                        &:hover:before{
                            margin-left:-55px;
                            transition:margin .2s;
                        }
                    }
                }
                .header-menu{
                    display:inline-block;
                    width:643px;
                    padding-left:209px;
                    .item-menu{
                        display:inline-block;
                        color:#333333;
                        font-weight:500;
                        font-size:16px;
                        line-height:112px;
                        margin-right:20px;
                        a {
                            color: #333;
                        }
                        a:hover {
                            color: #FF6600;
                        }
                        span{
                            cursor:pointer;
                        }
                        &:hover{
                            color:#FF6600;
                            .children{
                                height:220px;
                                opacity:1;
                            }
                        }
                        .children{
                            position:absolute;
                            top:112px;
                            left:0;
                            width:1226px;
                            height:0;
                            opacity:0;
                            overflow:hidden;
                            border-top:1px solid #E5E5E5;
                            box-shadow:0px 7px 6px 0px rgba(0, 0, 0, 0.11);
                            z-index: 10;
                            transition:all .5s;
                            background-color: #ffffff;
                            .product{
                                position:relative;
                                float:left;
                                width:16.6%;
                                height:220px;
                                font-size:12px;
                                line-height:12px;
                                text-align: center;
                                a{
                                    display:inline-block;
                                }
                                img{
                                    width:auto;
                                    height:111px;
                                    margin-top:26px;
                                }
                                .pro-img{
                                    height:137px;
                                }
                                .pro-name{
                                    font-weight:bold;
                                    margin-top:19px;
                                    margin-bottom:8px;
                                    color:#333333;
                                }
                                .pro-price{
                                    color:#FF6600;
                                }
                                &:before{
                                    content:' ';
                                    position:absolute;
                                    top:28px;
                                    right:0;
                                    border-left:1px solid #d7d7d7;
                                    height:100px;
                                    width:1px;
                                }
                                &:last-child:before{
                                    display:none;
                                }
                            }
                        }
                    }
                }
                .header-search{
                    width:319px;
                    .wrapper{
                        height:50px;
                        border:1px solid #E0E0E0;
                        display:flex;
                        align-items:center;
                        input{
                            border:none;
                            box-sizing: border-box;
                            border-right:1px solid #E0E0E0;
                            width:264px;
                            height:50px;
                            padding-left:14px;
                        }
                        a{
                            @include bgImg(18px,18px,'/imgs/icon-search.png');
                            margin-left:17px;
                        }
                    }
                }
            }
        }
    }
</style>